モジュール詳細:反転矢車菊色暗号

Centaureae cyanisは綺麗な色を持つ。

モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。

め、シリアルナンバーの最初の文字を三十六進数の文字として取得し6桁の二進数に変換する。本マニュアルでは、この二進数の各ビットを右から「ビット1」、「ビット2」、「ビット4」、「ビット8」「ビット16」と表現している(ビット32は使用しない)。

ステップ1:卓球型ストラドリング・チェッカーボード暗号

本ステップの前に、ページ1の下のディスプレーと2ページの上のディスプレーの内容を連結させる。これを「コード化された単語」とする。また、ページ2の真ん中と下のディスプレーにある単語も必要であり、それぞれ、キーワード(KW)1、キーワード2と呼ぶ。

このステップでは、二つのストラドリング・チェッカーボードを作成する。一枚はコード化された単語を長い数字の文字列に変換するために使用し、もう一枚はその数字を英字に変換するために使用する。

1枚目のストラドリング・チェッカーボードを作るうえで、以下の数字を獲得する。

  • d1 = インジケーターの個数を6で割った余り
  • d2 = ポートの数を6で割った余り。これがd1と等しい場合、1を足して再度6で割った余りを求める。

さらに、KW1から以下の手順でアルファベットキーを作成する。

  • キーワードから重複する英字を除外する(最初に出現したもののみ残す)。
  • アルファベット全体の文字列を用意し、キーワードにある英字を除外する。
  • ビット8が1の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

ストラドリング・チェッカーボードを作成するには、まず5段6列の表を用意する。列に0から5の番号を振る。1段目のセルは、d1の列とd2の列を除いて全て取り除く。残りの26セルをアルファベットキーで埋めていく。ビット16が1の場合、縦読み順(1列目を上から下に埋め、その後2列目以降に続く)の方向で埋める。そうでない場合、読み順(1段目を左から右に埋め、その後2段目以降に続く)の方向で埋める。

さらに、1段目以外の段にも0から5の番号を振る。ただし、d1とd2は飛ばす。

ここから、コード化された単語の各英字を数字に変換していく。1段目にある英字はその列に振られている1桁の数字に変換する。それ以外の英字は、段番号、列番号の順に並べて変換する。

次に、先程と同様に2枚目のストラドリング・チェッカーボードを作成する。ただし、以下の要素を変更する。

  • d1とd2ではなく、以下の数字を使用する。
    • d3 = バッテリーの個数を6で割った余り
    • d4 = 点灯したインジケーターの個数を6で割った余り。これがd3と等しい場合、1を足して再度6で割った余りを求める。
  • KW1とビット8ではなく、KW2とビット2を使用してアルファベットキーを作成する。
  • ビット16ではなく、ビット4を使用して英字を埋める順番を決める。

このストラドリング・チェッカーボードで数字を英字に戻す。最初の数字がd3またはd4の場合、1段目の対応する英字を使用する。そうでない場合、その次の桁と合わせてペアにする。ペア内の1つ目の数字を段、2つ目の数字を列に使用して英字を取得する。最後に1桁残った場合、それは無視する。

完了すると、新たなキーワードのKW3を取得できる。

暗号化された単語: LPFOENYHO; ビット: 01111

KW1: NEVER, d1 = 2, d2 = 0
ビット8 ⇒ NEVR + アルファベット
ビット16 ⇒ 読み順
012345
N#E###
1VRABCD
3FGHIJK
4LMOPQS
5TUWXYZ
L → 40, P → 43, F → 30, O → 42, E → 2, N → 0, Y → 54, H → 32, O → 42
数字: 4043304220543242
KW2: NOTARY, d3 = 1, d4 = 0
ビット2 ⇒ NOTARY + アルファベット
ビット4 ⇒ 縦読み順
012345
NY####
2OBFJPV
3TCGKQW
4ADHLSX
5REIMUZ
40 → A, 43 → L, 30 → T, 42 → H, 20 → O, 54 → U, 32 → G, 42 → H
KW3: ALTHOUGH

ステップ2: 連鎖回転暗号

暗号化された単語: KNQMKJ
N = 8
カエサル | サイクル | 残り
J–K → Y | Y | KNQMK
K–M → X | XY | KNQM
M–Q → V | XYV | KNQ
Q–N → C | CXYV | KN
N–K → C | XYVCC | K
K → K | CCKXYV |
結果: CCKXYV

ステップ1で取得した暗号化された単語とページ1の真ん中のディスプレーの数字Nを使用する。英字を使い切るまで、以下のステップを繰り返す。

  • 単語の末尾にある英字を取得する。その後、この英字を単語から取り除く。
  • この英字を、現在の単語の末尾にある英字のアルファベット上の位置の数字だけ、カエサル暗号で後方に戻す(英字が残っていない場合、この手順は無視する)。
  • この英字を結果文字列の先頭に追加する。
  • 結果文字列の末尾にある文字を先頭に移動させる。これをN回行う。

ステップ3: 省略版ブラインド・ポリュビオス暗号

このステップでは、ステップ1で取得した8文字の英単語のKW3と、ステップ2で取得した暗号化された単語が必要になる。

以下の図形を使用する。

????
?
?
?
?
1234
1
2
3
4

まず、省略版ポリュビオス正方形(右)をAからPの英字で埋める。KW3を用意し、キーワードから重複する英字(最初に出現したもののみ残す)とQからZの英字を除外する。残りの AからPの英字からKW3に含まれる英字を除いたものをアルファベット順に並べる。ビット1が1の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。この16文字を読み順でグリッド内に記入していく。

次に、ブラインド・ポリュビオス正方形(左)の段と列に番号を振る。列は、KW3の前半4文字に従って1から4の番号を振る。英字のアルファベット順に1から4の番号を振ること。複数回出現する英字については、左から右の順番で振る。同様に、キーワードの後半四文字に従って段にも1から4の番号を振る。

暗号化された単語を統一英語点字表記にする(複語ではなく、英字一文字のコードを使用)。そして、点のパターンを上から縦に積み重ねる。

2×2の点のパターンを一つの塊として新たな英字に変換する。上から12段分の点のみ実行すること。変換するには、ブラインド・ポリュビオス正方形内から点のパターンを探し、その段と列のラベルを取得し、省略版ポリュビオス正方形内の同じ段と列にある新たな英字を取得する。

最後に、残った6段の点の右側の列に着目する。塗りつぶされた点があれば、同じ位置にある新たな英字をカエサル暗号で13前方に進める(ROT-13を適用する)。

ALTH → 1342
OUGH → 3412

1342
3
4
1
2

KW3: ALTHOUGH; ビット: 01111
暗号化された単語: CCKXYV

1234
1ALHO
2GBCD
3EFIJ
4KMNP

→ 段3列2 → F
→ 段2列1 → G
→ 段3列1 → E
→ 段3列3 → I
→ 段2列3 → C
→ 段2列1 → G
→ ROT-13 1 & 2
→ ROT-13 3
→ ROT-13 6

ROT-13前 = FGEICG
ROT-13後 = STRICT

完了後、復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの矢印をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。